from PyQt6.QtCore import *
from PyQt6.QtWidgets import *
from PyQt6.QtGui import *
import pandas as pd  # 解释pandas库:数据处理库


def import_excel(self):
    file_path, _ = QFileDialog.getOpenFileName(self, "选择 Excel 文件", "C:\\", "Excel Files (*.xlsx)")
    # 解释:打开文件对话框
    if file_path:
        self.df = pd.read_excel(file_path)  # 解释:读取Excel文件
        self.table.setRowCount(len(self.df))  # 解释:表格的行数
        for row in range(len(self.df)):  # 解释:遍历行
            for col in range(len(self.df.columns)):  # 解释:遍历列
                self.table.setItem(row, col, QTableWidgetItem(str(self.df.iat[row, col])))
                # 解释:设置表格的单元格 几个参数:行,列,单元格内容
                # 解释:df.iat[row, col]是pandas库的方法,用于获取DataFrame的某个单元格的值

def calculate(self):
    # 读取参数
    density = float(self.param1.text())  # 解释:获取文本框的值
    depth = float(self.param2.text())
    pressure = density * depth * 9.8  # 解释:计算压力=密度*深度*重力加速度
    self.table.setItem(0, 2, QTableWidgetItem(f"{pressure:.2f}Pa"))  # 解释:设置表格的单元格 几个参数:行,列,单元格内容

def save_edit(self, row, col):
    self.df.iat[row, col] = self.table.item(row, col).text()  # 解释:设置表格的单元格